#ifndef STATE_GROUP_H
#define STATE_GROUP_H

#include <QVector>

class StateInfo;

class StateGroup
{
public:
    explicit StateGroup(int64_t id, QString host, QString description, int port);
    virtual ~StateGroup();

    /**
     * @brief 添加子站信息
     * @param id 子站ID
     * @param host 子站主机
     * @param description 子站描述
     * @param port 子站端口
     * @return 如果>0，则添加成功，否则添加失败
     */
    int appendStateInfo(int64_t id, QString host, QString description, int port);

    /**
     * @brief 获取主站信息
     * @return 主站信息指针
     */
    StateInfo* stateInfo() const;

    /**
     * @brief 获取子站信息列表
     * @return 子站信息列表
     */
    const QVector<StateInfo*>& stateInfosVec() const;

private:
    StateInfo* state_info_;
    QVector<StateInfo*> state_infos_vec_;
};

#endif // STATE_GROUP_H
